package br.gov.ms.tce.modelo.dao.impl;

import java.util.List;

import javax.inject.Named;
import javax.persistence.criteria.Predicate;

import br.gov.ms.tce.bean.comum.TipoClassificacao;
import br.gov.ms.tce.bean.comum.Usuario;
import br.gov.ms.tce.modelo.dao.UsuarioDAO;

@Named
public class UsuarioDAOJPA extends GenericDAOJPA<Usuario, Integer>
		implements UsuarioDAO{

	
	

	/**
	 * @see br.gov.ms.tce.modelo.dao.UsuarioDAO#findByLoginAndSenha(java.lang.String, java.lang.String)
	 */
	@Override
	public Usuario findByLoginAndSenha(String login, String senha) {
		createCriteria();	

		Predicate retrictions = cb.notEqual(root.get("pessoaFisica").get("situacao"), TipoClassificacao.SITUACAO_PESSOA_DESCARTADO);
		
		if(login!=null)
			retrictions = cb.and(cb.equal(root.get("login"), login),retrictions);
		
		if(senha!=null)
			retrictions = cb.and(cb.equal(root.get("senha"), senha),retrictions);
		
		query.where(retrictions);		
		
		List<Usuario> list = getResultList();				
		return list.isEmpty()?null:list.get(0);
	}

	
	
	


}